package com.bdqn.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bdqn.pojo.SysUser;

import java.util.List;

/**
 * SysUserService 用户业务逻辑接口
 *
 * @author LILIBO
 * @since 2025/3/19
 */
public interface SysUserService extends IService<SysUser> {

    /**
     * 根据姓名和角色ID查找用户列表（自定义接口）
     *
     * @return
     */
    List<SysUser> getByUsrNameAndRoleId(String usrName, Long usrRoleId);

    /**
     * 根据姓名和密码查找用户信息（自定义接口）
     *
     * @return
     */
    SysUser getByUsrNameAndUsrPassword(String usrName, String usrPassword);

    /**
     * 登录
     *
     * @param usrName
     * @param usrPassword
     * @return
     */
    SysUser login(String usrName, String usrPassword);

    /**
     * 分页查询用户列表
     *
     * @param usrName
     * @param usrRoleId
     * @param page
     * @return
     */
    Page<SysUser> queryPage(String usrName, Long usrRoleId, Page<SysUser> page);

    /**
     * 检查用户名是否存在（排除本身ID）
     *
     * @param usrName
     * @param usrId
     * @return
     */
    String check(String usrName, Long usrId);

    /**
     * 保存用户（兼容新增和修改）
     *
     * @param sysUser 实体对象
     * @return
     */
    SysUser saveSysUser(SysUser sysUser);

    /**
     * 删除用户
     *
     * @param usrId
     * @return
     */
    Boolean removeSysUser(Long usrId);

}
